#ifndef __MRKEYS_H__
#define __MRKEYS_H__

#include <NTL/ZZ.h>
#include "MRProcessArgs.h"

class MRKeys {
public:
	MRKeys(MRProcessArgs &mrp);
	~MRKeys();
	int genKeys();

private:
	unsigned keySize;

	std::string b64_chars;		
	std::string publicFileName;
	std::string privateFileName;
	NTL::ZZ p, q, n, totient_n;

	unsigned long long getSeedNum(void);
	void byte64Encode(unsigned char *asc, 
			       unsigned char *bin,
			       unsigned len);
	int byte64Decode(unsigned char *bin, 
			       unsigned char *asc,
			       unsigned len);

};

#endif  /* __MRKEYS_H__ */
